Traditionally, information is written and distributed by means of pen and paper. However, such paper-based information is difficult to manage and communicate in an efficient way.
Computers are to an ever-increasing extent used for management and communication of information. The information is typically input by means of a keyboard and stored in the computer memory, for example on a hard disk. However, it is a slow process to input information with a keyboard, and there is a significant risk of errors occurring in the process. Graphic information, such as drawings and images, is normally fed to the computer through a separate device, such as a scanner or the like. The process of feeding such information to the computer is time consuming, lengthy, and often yields unsatisfactory results. When the information eventually is located in the computer, it can easily be communicated to others, for example as an e-mail or SMS via an Internet connection, or as a fax via a fax modem.
The present Applicant has proposed a remedy to this problem in the international application WO 01/16691, which is incorporated herein by this reference and in which the Applicant envisages the use of a product having a writing surface which is provided with a position code. The position code, which codes a plurality of positions on the surface, enables electronic recording of information that is being written on the writing surface. The information is written on the surface by means of a digital pen. The pen has a sensor, which detects the position code on the surface. The pen records information by recording the detected position code. The position code is capable of coding coordinates of a large number of positions, much larger than the number of necessary positions on one single product. Thus, the position code can be seen as forming a virtual surface which is defined by all positions that the position code is capable of coding, different positions on the virtual surface being dedicated for different functions and/or actors. The pen communicates with a server with knowledge of the functionality of every position on the virtual surface and any actor associated with each such position.
The above concept can be used for a number of different purposes. The combination of pen and position coded product can be used as an input device to a computer, a PDA, a mobile phone or the like. For example, text and sketches written on a position-coded notepad can be transferred via the pen to a computer. Additionally, the combination of pen and position-coded product allows for global communication, directly from the product via the pen, by the position code on the product being dedicated for such communication. For example, the information registered by the pen can be transformed to a fax message, an e-mail or an SMS, and then be sent from the pen to a recipient. Further, the combination of pen and position-coded product can be used in e-commerce. For example, the digital pen can be used to order an item from a position-coded advertisement in a magazine, by the position code in the advertisement being dedicated for such a service.
In the communication between the different participants in the above concept, it is desirable that the information is sent in a secure way, i.e. by using encryption and digital signatures. If the pen sends confidential information to a recipient, the pen encrypts the information and the recipient will, in order to decipher the information, decrypt it. The pen can use both symmetric and asymmetric encryption. Both types of encryption provides confidentiality (the information is kept secret during transmission) and authentication (assuring the receiver that the identity of the sender of the information is not false). Authentication protects two parties exchanging data from a third party, but it does not protect the two parties from each other. Typically, it should not be possible for any one of the two parties to deny having received or transmitted certain information. When there is not complete trust between the receiver and transmitter, digital signatures are preferably used. By employing asymmetric encryption it is possible to assign digital signatures to the information sent, thereby obtaining non-repudiation (neither the sender nor the recipient of information is able to deny the transmission) of received or transmitted information. The integrity (the information has not been altered during the transmission) of the information must also be guaranteed. This is achieved by using hash functions.
When using symmetric encryption, the same key is used for both encryption and decryption, i.e. the transmitter and receiver shares two copies of the same key. The key is used in conjunction with an algorithm, and different keys will produce different output results from the algorithm. The security of the encryption depends on the secrecy of the key, not the secrecy of the algorithm. This makes it possible to use powerful standard algorithms, such as the Triple Data Encryption Standard (3-DES) algorithm, the Advanced Encryption Standard (AES) algorithm or the International Data Encryption Algorithm (IDEA). The security also depends on the length of the key. The longer the key, the more difficult it is to break the cipher.
Asymmetric encryption works in a similar way, but are based on a pair of keys; one secret, private key and one public key. Often four keys are used, one public key and one private key for confidentiality and one public key and one private key for authentication and digital signature. The sender uses the public key of the receiver to encrypt the information and the receiver uses its private key to decrypt the information. Only a receiver with a private key corresponding to the public key can read the information, thus providing confidentiality. For authentication and digital signature, the sender uses its private key to encrypt the information and the receiver uses the public key of the sender to decrypt the information. If the receiver is able to decrypt the information, it is ascertained that it was encrypted with the corresponding private key, and thus by the corresponding sender. Commonly used public-key algorithms are, for example, the Diffie-Hellman (DH) algorithm and the Rivest-Shamir-Adleman (RSA) algorithm.
Although the legitimate person has signed the information, it is not possible to know from digital signatures alone if the information has been delivered in its entirety. What is needed is a mechanism that delivers some kind of fingerprint of the unique information. Mathematically, these mechanisms are called hash functions. Hash functions take variable-length input strings and convert them to fixed-length output strings, so called hash values. The hash value can then be used to indicate whether a candidate input is likely to be the same as the real input. One-way hash functions are functions that easily compute hash values from the input strings, but with which it is computationally hard to generate another input value that hashes to the same value. This way, hash functions can be used when sending information to ensure the receiver the integrity of the information. The hash value of the information is calculated and sent along with the information. The receiver can then simply make a hash value of the received information and compare this to the hash value sent. If these match, the recipient is also guaranteed a match between the information received and the information sent, on condition that the hash value itself, or the information sent along with the hash value, is protected. Protection of the hash value, or the information sent along with the hash value, is necessary because the hash function itself is not considered to be secret.
In many encryption algorithms random number data is used for different reasons. One is that random data by its nature is difficult to determine or guess, making random numbers suitable as keys.
A problem that has to be solved is that the provision of confidentiality, authentication, non-repudiation and integrity with asymmetric encryption is computationally difficult to perform and requires relatively much processing power.